package com.itlong.cloud.property.dao;

import com.itlong.cloud.POJO.VO.app.AppElevatorConsumptionRecordInfoVO;
import com.itlong.cloud.POJO.VO.property.ConsumptionRecordVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * <desc>
 *      消费管理数据访问层接口
 * </desc>
 *
 * @createDate2020/7/15
 **/
@Mapper
@Repository
public interface IPropertyConsumptionDao {

    /**
     * <desc>
     *      获取消费记录分页列表
     * </desc>
     *
     * @param params 参数map
     * @return 消费记录分页列表
     * @Author Zhu.yj
     * @createDate  2020/7/16
     */
    List<ConsumptionRecordVO> getPage(Map<String, Object> params);

    /**
     * <desc>
     *      获取消费记录总数量
     * </desc>
     *
     * @param params 参数map
     * @return 消费记录分页列表
     * @Author Zhu.yj
     * @createDate  2020/7/16
     */
    Integer getPageCount(Map<String, Object> params);

    /**
     * <desc>
     *      查询缴费记录时间列表
     * </desc>
     *
     * @param params 参数map
     * @return
     * @Author Zhu.yj
     * @createDate  2020/7/17
     */
    List<ConsumptionRecordVO> getRecordDate(Map<String, Object> params);

    /**
     * <desc>
     *      查询消费记录列表
     * </desc>
     *
     * @param consumeIds 消费记录id
     * @return
     * @Author Zhu.yj
     * @createDate  2020/7/17
     */
    List<AppElevatorConsumptionRecordInfoVO> getRecordList(@Param("list") List<String> consumeIds);

    /**
     * <desc>
     *      获取有消费记录的年月
     * </desc>
     *
     * @param params 参数map
     * @return 年月
     * @Author Zhu.yj
     * @createDate  2020/7/20
     */
    List<Map<String, Object>> getConsumptionDate(Map<String, Object> params);

    /**
     * <desc>
     *      获取有缴费记录的年月
     * </desc>
     *
     * @param params 参数map
     * @return 年月
     * @Author Zhu.yj
     * @createDate  2020/7/20
     */
    List<Map<String, Object>> getPaymentDate(Map<String, Object> params);
}
